/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ufrn.cerescaico.sepe.actions;

import br.ufrn.cerescaico.sepe.beans.Participante;
import br.ufrn.cerescaico.sepe.bo.SepeException;
import org.apache.log4j.Logger;

/**
 *
 * @author Taciano
 */
public class InscricaoAction extends SepeAction {

    /**
     * Logger.
     */
    private Logger logger = Logger.getLogger(InscricaoAction.class);
    
    private Participante participante;

    /**
     * Verifica a entrada do formulário de registro e encaminha para a página
     * principal se não houver erro.
     * @see com.opensymphony.xwork2.ActionSupport#execute()
     */
    @Override
    public String execute() throws Exception {
        //try {
        logger.info("execute()");
        preencherDados();
        /*
        } catch (SepeException ex) {
        logger.error(ex.getMessage(), ex);
        addActionError(getText(ex.getMessage()));
        }*/
        return SUCCESS;
    }

    private void preencherDados() {/*throws SepeException {
        setCategorias(getSepe().listarCategoriasTrabalhos());
        setAreas(getSepe().listarAreas());*/

    }

    public String addEmailParticipante() throws Exception {

        if (verificarNull()) return execute();

        try {
            getParticipante().setEmail(getParticipante().getEmail().toLowerCase().trim());
            getSepe().incluirParticipante(getParticipante());
            addActionMessage(getText("view.inscricao.action.email.cadastrado"));
            addActionMessage(getText("view.inscricao.action.email.verifique.senha"));
        } catch (SepeException ex) {
            logger.error(ex.getMessage(), ex);
            addActionError(getText(ex.getMessage()));
        }
        return execute();
    }

    private boolean verificarNull() throws Exception {
        if (getParticipante() == null || getParticipante().getEmail() == null || "".equals(getParticipante().getEmail())) {
            logger.error(getText("erro.inscricao.participante.email.null"));
            addActionError(getText("erro.inscricao.participante.email.null"));
            return true;
        }
        return false;
    }

    public String reenviarSenhaParticipante() throws Exception {

        if (verificarNull()) return execute();
        try {
            getSepe().reenviarSenhaParticipante(getParticipante());
            addActionMessage(getText("view.inscricao.action.email.verifique.senha"));
        } catch(SepeException ex) {
            logger.error(ex.getMessage(), ex);
            addActionError(getText(ex.getMessage()));
        }

        return execute();
    }

    public Participante getParticipante() {
        return participante;
    }

    public void setParticipante(Participante participante) {
        this.participante = participante;
    }
}
